package com.dexin.rabbitmq;

import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class SendTest {
    public static void main(String[] args) throws Exception{

        ConnectionFactory factory=new ConnectionFactory();
        factory.setHost("192.168.235.128");//设置RabbitMQ的主机IP
        factory.setPort(5672);//设置RabbitMQ的端口号
        factory.setUsername("admin");//设置访问用户名
        factory.setPassword("123456");//设置访问密码
        Connection connection=null;//定义链接对象
        Channel channel=null;//定义通道对象
        connection=factory.newConnection();//实例化链接对象
        channel=connection.createChannel();//实例化通道对象

        String message ="Hello World!7";

        //发送消息到RabbitMQ
        //参数1 我们自定义的交换机名称
        //参数2 自定义的RoutingKey值
        //参数3 设置消息的属性，可以通过消息属性设置消息是否是持久化的
        //参数4 具体要发送的消息信息
        //定义消息属性对象 设置deliveryMode(1) 表示消息不需要持久化  deliveryMode(2)需要持久化
        //在性能持久化消息要低于非持久化消息，在安全上持久化消息在服务器宕机之后还可以保留因此安全性相对要高一些
        AMQP.BasicProperties properties=new AMQP.BasicProperties.Builder().deliveryMode(2).build();
        channel.basicPublish("myExchange","myRoutingKey",properties,message.getBytes("UTF-8"));
        channel.close();
        connection.close();
    }
}
